home *** CD-ROM | disk | FTP | other *** search
Text File | 1986-06-28 | 13.0 KB | 247 lines | [TEXT/EDIT] |
- This packit file contains the following:
- DiskBench - an disk benchmark application modified to eliminate possible
- interleaving "prejudices"
- DiskBench.asm - the MDS assembler source
- DiskBench.link - the MDS linker file
- DiskBench.r - RMaker file to eliminate need for Consulair linker
- DiskBench.readme- this file, which contains a letter from the original
- author, Steve Brecher concerning the nature of the
- program. This message was downloaded from "another"
- network. (Sorry, Brian...but at least it wasn't CI$)
- This letter was a result of the several interchanges
- and the results presented reflected latest HD driver
- software performance as of 22 Apr 86. In addition, the
- results were based upon version 2.x of the diskbench
- application.
- With the newer version included, I suggest that several members of GENIE
- perform their own benchmarks on the latest version of HD drivers and
- post the results in the appropriate cat/topic.
- Paul Sydney
- ------------------------------
-
- From: BRECHER (7507)
- Subject: Interleave/DiskBench
- Date: 22-APR 10:19 MUGS Online
-
- Which Interleave is best?
- -------------------------
-
- Recently John Bass pointed out that 1:1 interleaving is sometimes
- disadvantageous due to the frequency of logically-contiguous
- single-sector requests. He estimated that interleaving of
- approximately 6:1 would be optimal for handling such requests. I
- tested that estimate by modifying DiskBench to issue 64 single-sector
- requests on increasing sector addresses, in place of each prior 32KB
- request. I ran this "SSDiskBench", as well as the original DiskBench,
- on a MicahDrive at various interleaves; results were as follows (read
- and write results were in all cases identical or nearly so, so I show
- here only the read results):
-
- Interleave SSDiskBench DiskBench
- 1:1 6801 507
- 2:1 7206 812
- 3:1 7511 1116
- 4:1 7518 1523
- 5:1 6513 1827
- 6:1 2538 2233
- 7:1 2538 2537
- 8:1 2943 2943
-
- These results clearly confirm Bass's "about 6:1" estimate for optimal
- handling of consecutive single-sector requests. However, Bass claimed
- that this is also the best system interleave -- i.e., that assuming
- that all requests are single-sector is appropriate. This is not to
- say that Bass claims that ALL requests actually are single-sector --
- just that such requests are so relatively frequent that the best
- interleave is one which accommodates them.
-
- I gathered some statistics on the distribution of disk I/O requests by
- writing a hook into _Read and _Write which records the size of each
- request and the the sector (logical block) distance from the end of
- the previous request to the start of the current request. I invoked
- this recorder, and then performed the following activities on a 512K
- Mac, 128K ROMs, System 3.2b3, Finder 5.2, big TMON loaded, MicahDrive
- HFS volume about 9MB full, starting in Finder with the disk directory
- window open:
-
- Open folder; double-click MacWrite document; change document, quit
- with save; close folder; open folder; double-click MacPaint document;
- change document; quit with save; duplicate (Finder copy) 22K document;
- close folder; open folder; open MDS Asm; use SFGetFile to select
- document (go up, down, down in directory hierarchy); assemble;
- transfer directly to Consulair Link 1.5; Link; quit to Finder; close
- folder; open folder; double-click Excel worksheet document; change
- worksheet; quit with save; close folder.
-
- Size of disk read/write requests, 512-byte sectors:
-
- Number of sectors Number of requests Sectors transferred (%)
- 1 1785 1785 (49%)
- 2 16 32
- 3 16 48
- 4 6 24
- 5 23 115
- 6 8 48
- 7 3 21
- 8 22 176
- 9 4 36
- 10 2 20
- 13 1 13
- 14 9 126
- 16 1 16
- 17 2 34
- 18 2 36
- 23 1 23
- 24 1 24
- 25 1 25
- 43 1 43
- 44 3 152
- 48 1 48
- 49 1 49
- 61 1 61
- 63 4 252 ( 7%)
- 70 1 70 ( 2%)
- 374 (Excel PCOD resource) 1 374 (10%)
- ---- ----
- 1916 total requests 3651 total sectors
-
- Sector distance between chronologically consecutive requests (end of
- request N-1 to start of request N; 0 means requests are physically
- contiguous):
-
- Sector distance Number of requests
- 0 1060
- 1 20
- 2 13
- 3 14
- 4 5
- 5 8
- negative or 6 or more 796
- ----
- 1916 total requests
-
- Clearly, consecutive single-sector requests predominate. However,
- this is not sufficient to establish the best interleave. Consider:
- for each consecutive single-sector request in a series, a 1:1 drive
- takes about one disk revolution, and a 6:1 drive takes about one-third
- of a revolution. For a single 374-sector request, a 6:1 drive takes
- about 124 revolutions; a 1:1 drive, about 21 revolutions. Hence, in
- terms of relative advantage, a single 374-sector request balances a
- series of about 154 single-sector requests. These calculations are
- back-of-the envelope; the exact magnitude of the results is not the
- issue. The point is that a few big requests at 1:1 interleave can
- offset the advantage of many contiguous single-sector requests at 6:1
- interleave.
-
- So, whether 1:1 or 6:1/7:1 is better from the standpoint of getting the user
- home quicker depends on the user's job mix. To find out what kind of
- activities favor interleaving or lack thereof, I wrote another _Read/_Write
- hook. Here, if the request started in the same cylinder in which the previous
- request ended, and if there were five or fewer intervening logical sectors,
- the relative advantage of 6:1 vs. 1:1 interleave was calculated and
- cumulated. And, the relative disadvantage of 6:1 in terms of sectors passing
- under the heads during actual data transfer was calculated and cumulated.
- The following is a general summary of the net winner by activity:
-
- Activity Winner
-
- All launches--
- (MacWrite, MacPaint, Excel, MDS Asm, Consulair Link) 1:1
- Finder copies 1:1
- MDS Assembly 1:1
- Consulair Link 6:1
- Opening/Saving Write/Paint documents 6:1
-
- I presume that any backup program will do multi-sector requests, and therefore
- would run faster with 1:1.
-
- In general, if the user does a lot of document opening/saving, then
- the 6:1 or so interleave is better. If he does a lot of
- launching/quitting (launching Finder), file copying, etc., then 1:1 is
- better. It should be noted, though, that with a "normal" mix of
- activities the perceived difference will not be great. I've been
- running the MicahDrive at 7:1 for a couple of days (previously 1:1);
- the perceived throughput is not noticeably different. I clocked a few
- different activities at both interleaves, and the difference was
- typically a few percent one way or the other.
-
-
- DiskBench
- ---------
-
- DiskBench has been aptly criticized for not being a realistic measure
- of normal user I/O patterns. (To which I have previously responded
- that it was a quick hack that was never advertised as realistic.) In
- light of the foregoing data, I'd like to make clear (especially to
- non-technical readers) that the DiskBench data transfer tests measure
- only performance on large multi-sector I/O requests, and that in "real
- life" such requests comprise only about 20% or so of the total data
- that goes back and forth between the Mac and the disk. Hence,
- DiskBench data transfer results are not necessarily representative of
- relative performance in real use. FOR WHAT THEY ARE WORTH, here is
- the last set of results I will publish:
-
- The read data transfer test consists of 100 reads of 32KB from the beginning of
- the volume; the write data transfer test consists of 100 writes of 32KB to the
- beginning of the volume. The access time test consists of 40 repetitions of:
- read 512 bytes from an offset of 1MB into the volume; read 512 bytes from the
- beginning of the volume.
-
- Results on only one specimen should be regarded as provisional.
-
- Data transfer Access Tester
- ---- time ---- time
- Reads Writes
-
- 400K floppy drive, Apple 8756 11816 N/A S. Brecher
- 400K floppy drive, Apple N/A 12392 N/A G. Frascadore
- 400K floppy drive, Apple 8796 11629 N/A C. Nicolais
- 400K floppy drive, Apple N/A 12351 N/A R. Perez
- 800K floppy drive, SS, Apple 8758 11407 N/A S. Brecher
- 800K floppy drive, SS, Apple 6842 11462 N/A D. Etchells
- 800K floppy drive, SS, Apple 7544 11550 N/A C. Nicolais
- 800K floppy drive, DS, Apple 7701 10874 N/A S. Brecher
- 800K floppy drive, DS, Apple 7523 10913 N/A N. Fong
- 800K floppy drive, DS, Apple 7737 10897 N/A C. Nicolais
- AST 4000, AST Research 1495 1533 159 KATZ, Mousehole BBS
- AST 4000, AST Research 1495 1549 160 KATZ (second drive)
- AST 4000, AST Research 1495 1537 169 KATZ (third drive)
- Bernoulli Box, 5MB, Iomega 4174 24437 66 JCOM, Mousehole BBS
- Corvus 45MB 10080 16632 323 R. Scorer, Corvus
- Corvus 126MB 9822 16438 240 R. Scorer, Corvus
- DASCH external RAMdisk 2482 2797 N/A J. Eugenides
- DataFrame 20, SuperMac 1319 2233 488 J. Bean
- DataFrame 20, SuperMac 1344 2233 487 S. Brecher
- DataFrame 20, SuperMac 1319 2233 446 L. Custer
- Hard Disk 20, Apple 7029 7938 368 M. Chally
- Hard Disk 20, Apple 7074 7871 368 N. Fong
- Hard Disk 20, Apple 7054 7944 370 KATZ, Mousehole BBS
- Hard Disk 20, Apple 9714 9718 263 R. Scorer
- Hard Disk 20, Apple 9883 6948 368 R. Wiggins
- HD-20, MDIdeas 1726 3260 446 S. Brecher
- HD-30, MDIdeas 1749 3576 406 S. Brecher
- HyperDrive 10, obsolete model 1591 1616 401 S. Brecher
- HyperDrive 10, GCC (V2R1) 8000(?) 7982(?) 648(?) H. Conover
- HyperDrive 10, GCC (V2R1) 7985(?) 6892(?) 485 R. Perez
- HyperDrive 20, GCC (V2R1) 1703 1506 640(?) R. Ford
- HyperDrive 20, GCC 1704 1506 241(?) W. Luckie
- LoDOWN 10MB 1504 1503 321 S. Brecher
- LoDOWN 20MB 1503 1504 242 M. Bohlig
- MacBottom 10, v2.1, PCPC 4159 6897 686 M. O'Connor
- MacBottom 10, v2.6, PCPC 4159 6897 608 S. Aronian
- MacBottom 20, v2.1, PCPC 4110 6817 601 L. Becker
- MacBottom 20, v2.6a, PCPC 4161 6901 657 S. Fischbach
- MacDrive, Tecmar 6102 6704 440 L. Custer
- MacDrive, 10MB Fixed, Tecmar 6017 6719 401 C. Nicolais
- Macintosh XL, 10MB 3489 3589 370 MACLAIRD, Delphi
- MagNet 20, Mirror Tech. 14539 14538 322 D. Etchells
- MicahDrive 20 AT, Micah 508 507 488 S. Brecher
- MicahDrive 20 AT, Micah 508 507 527 S. Harris
- OverDrive 60/16MHz CPU, Levco 1102 1102 121 S. Brecher
- Profile, 5MB, Lisa 2/5, Apple 4107 4407 721 MACLAIRD, Delphi
- Quark QC-20 6476 6488 82(?) R. Thacker
- QuickDrive external RAMdisk 2411 2479 52 R. Bates
- QuickDrive external RAMdisk 2466 2535 33 J. Eugenides
- RamStart RAMdisk/Beck-Tech RAM 186 186 N/A G. Frascadore
- Warp 20, Warp Nine Engin'rng 14537 14537 321 G. Frascadore
-